import { get, download, post } from '@/service/request'

export function getRoleList(data: RolePageQuery) {
  return get<RolePageResult>('upms/role/page', data)
}

export function exportRoleList(data: RolePageQuery) {
  return download({ url: 'upms/role/page', data: { ...data, export: true } })
}

// 删除角色
export function removeRole(id: string) {
  return post('upms/role/removeById', { id })
}

// 添加角色
export function saveRole(params: RoleForm) {
  return post('upms/role/saveOrUpdate', params)
}

// 根据角色Id获取菜单树Ids
export const getRoleTreeByRoleId = (roleId: string) => {
  return get<string[]>('upms/menu/getRoleTreeByRoleId', { roleId })
}

// 获取所有角色
export function getAllRole() {
  return get<RoleData[]>('/upms/role/listRoles')
}

export interface RolePageQuery extends PageQuery {
  roleName?: string
  dataType?: 1 | 2 // 1 创建时间 2、更新时间
  startTime?: string
  endTime?: string
}

interface RolePageResult {
  size: number
  total: number
  records: RoleData[]
}

/** 角色列表对象 */
export interface RoleData {
  /** 角色ID */
  roleId?: string
  /** 角色名称 */
  roleName?: string
  /** 角色说明 */
  roleDesc?: string
  /** 创建时间 */
  createTime?: Date
  /** 修改时间 */
  updateTime?: Date
}

export interface RoleForm {
  /** 角色ID */
  roleId?: string
  /** 角色名称 */
  roleName?: string
  /** 角色说明 */
  roleDesc?: string
  /** 菜单ID */
  menuIds?: string
}
